package redlib.backend.service;


import redlib.backend.dto.InstrumentDTO;
import redlib.backend.dto.query.InstrumentQueryDTO;
import redlib.backend.model.Page;
import redlib.backend.model.Statistics;
import redlib.backend.vo.InstrumentStatisticsVO;
import redlib.backend.vo.InstrumentVO;

import java.util.List;

/**
 * 实验室仪器管理模块服务接口
 *
 * @author 崔宇鑫
 * @date 2023-3-17
 */
public interface InstrumentService {
    Page<InstrumentVO> listByPage(InstrumentQueryDTO queryDTO);

    /**
     * 新建实验室仪器
     *
     * @param instrumentDTO 实验室仪器输入对象
     * @return 实验室仪器编码
     */
    Integer addInstrument(InstrumentDTO instrumentDTO);

    /**
     * 更新仪器数据
     *
     * @param instrumentDTO 实验室仪器输入对象
     * @return 实验室仪器编码
     */
    Integer updateInstrument(InstrumentDTO instrumentDTO);

    /**
     * 根据编码列表，批量删除实验室仪器
     *
     * @param ids 编码列表
     */
    void deleteByCodes(List<Integer> ids);



    /**
     * 获取实验室仪器管理统计图
     *
     */
    Statistics<InstrumentStatisticsVO> statistics();


    /**
     * 实验室仪器报修
     *
     */
    void repairByCodes(List<Integer> ids);



    /**
     * 实验室仪器检修完毕
     *
     */
    void repairedByCodes(List<Integer> ids);

}
